package com.xzq.erp.service;

import com.xzq.erp.domain.dto.MenuDTO;
import com.xzq.erp.domain.po.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xzq.erp.domain.query.MenuPageQuery;
import com.xzq.erp.domain.vo.MenuVO;

import java.util.List;

/**
 * <p>
 * 系统菜单表 服务类
 * </p>
 *
 * @author xzq
 * @since 2025-05-13
 */
public interface IMenuService extends IService<Menu> {

    /**
     * 获取所有菜单列表
     * @return 菜单列表
     */
    List<MenuVO> getMenuList(MenuPageQuery query);
    
    /**
     * 获取当前用户的菜单列表
     * @return 菜单列表
     */
    List<MenuVO> getCurrentUserMenuList();
    
    /**
     * 根据用户ID获取菜单列表
     * @param userId 用户ID
     * @return 菜单列表
     */
    List<MenuVO> getMenuListByUserId(Integer userId, Boolean isMenu);

    /**
     * 根据角色ID获取菜单列表
     * @param roleId 角色ID
     * @return 菜单列表
     */
    List<MenuVO> getMenuListByRoleId(Integer roleId);

    /**
     * 保存菜单
     * @param menuDTO
     */
    void save(MenuDTO menuDTO);

    /**
     * 修改菜单
     * @param menuDTO
     */
    void updateMenu(MenuDTO menuDTO);

    /**
     * 删除菜单
     * @param id
     */
    void deleteMenu(Integer id,Integer type);
}
